package com.authine.cloudpivot.ext.dto.kingDee.request;


import com.authine.cloudpivot.ext.enums.kingdee.KingDeeArchitectureCateEnum;
import com.authine.cloudpivot.ext.enums.kingdee.KingDeeInvoiceApplyTypeEnum;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;

import java.io.Serializable;
import java.math.BigDecimal;
import java.util.Date;


@Data
@AllArgsConstructor
@NoArgsConstructor
@Schema(description = "开票申请")
public class KingDeeInvoiceApply implements Serializable {

    private static final long serialVersionUID = -1908871105998128200L;
    /**
     * 发票申请单ID
     */
    @Schema(description = "发票申请单ID")
    private String id;
    /**
     * 开票名称
     */
    @Schema(description = "开票名称")
    private String name;
    /**
     * 发票号码
     */
    @Schema(description = "发票号码")
    private String number;
    /**
     * 发票总金额
     */
    @Schema(description = "发票总金额")
    private BigDecimal amount;
    /**
     * 发票税前金额
     */
    @Schema(description = "发票税前金额")
    private BigDecimal pretaxAmount;
    /**
     * 税额
     */
    @Schema(description = "税额")
    private BigDecimal taxPayable;
    /**
     * 税率
     */
    @Schema(description = "税率")
    private BigDecimal taxRate;

    /**
     * 发票类型
     */
    @Schema(description = "发票类型")
    private KingDeeInvoiceApplyTypeEnum type;
    /**
     * 开票时间
     */
    @Schema(description = "开票时间")
    private Date invoiceTime;
    /**
     * 转采采购税前金额
     */
    @Schema(description = "转采采购税前金额")
    private BigDecimal purchaseTransferPurchasePretaxAmount;
    /**
     * 转采不含税销售金额
     */
    @Schema(description = "转采不含税销售金额")
    private BigDecimal saleTransferPurchasePretaxAmount;
    /**
     * 平台不含税销售金额
     */
    @Schema(description = "平台不含税销售金额")
    private BigDecimal platformDoesNotIncludeTaxSalesAmount;
    /**
     * 既有转采又有非转采
     */
    @Schema(description = "既有转采又有非转采")
    private Boolean isTransferPurchaseAndPlatform;
    /**
     * 转采
     */
    @Schema(description = "转采")
    private Boolean isTransfer;
    /**
     * 组织ID
     */
    @Schema(description = "组织ID")
    private String orgId;
    /**
     * 父组织名称
     */
    @Schema(description = "父组织名称")
    private String parentName;
    /**
     * 组织名称
     */
    @Schema(description = "组织名称")
    private String companyName;
    /**
     * 组织类型
     */
    @Schema(description = "组织类型")
    private KingDeeArchitectureCateEnum architectureType;
    /**
     * 手动指定的金蝶客户编码
     */
    @Schema(description = "手动指定的金蝶客户编码")
    private String kingdeeCode;
    /**
     * 部门编码
     */
    @Schema(description = "部门编码")
    private String departmentNumber;

    /**
     * 发票类型
     *  true 代购
     *  false 非代购
     */
    @Schema(description = "发票类型 true 代购|false 非代购")
    private Boolean contractInvoiceType;

    /**
     * 详情数量
     */
    @Schema(description = "详情数量")
    private Integer invoiceDetailSize;
    /**
     * 账套名
     */
    @Schema(description = "账套名")
    private String accountName;

}
